package com.shz.utils;

import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class UniqueRandomIdGenerator {

    public static void main(String[] args) {
        int x = 0;  // 起始值
        int y = 10;  // 结束值
        int z = 10;  // 生成的数量

        Set<Integer> uniqueIds = generateUniqueRandomIds(x, y, z);
        System.out.println("Generated Unique Random IDs: " + uniqueIds);
    }

    /**
     * 生成指定数量的不重复随机ID
     *
     * @param x 起始值
     * @param y 结束值
     * @param z 生成的数量
     * @return 不重复的随机ID集合
     */
    public static Set<Integer> generateUniqueRandomIds(int x, int y, int z) {
        if (z > (y - x + 1)) {
            throw new IllegalArgumentException("Cannot generate " + z + " unique IDs within range [" + x + ", " + y + "]");
        }

        Set<Integer> uniqueIds = new HashSet<>();
        Random random = new Random();

        while (uniqueIds.size() < z) {
            int randomId = random.nextInt(y - x + 1) + x;
            uniqueIds.add(randomId);
        }

        return uniqueIds;
    }
}